//������������ ������ �3
//
//initializer_list, move, default, delete, move ���������
#include "MyQueue.h"
#include "myString.h"
//using namespace std;

int main()
{
//�������.������������ �����, ������� ��������� ���������������� ������� � ���������� ������ ����.
//������ ��������� ������� � ������������ �������, ��� ���� ������������ ������ ��� ����������� �����.
// ���������: ��� ��� ������� � ��� ������������� ��������� ������, ��� ������� ����� ������ ���������� � �����,
//  �  ������� ������ ��������� �� ������ ������� = > ���� ��������� ������� ������� ������������, 
// �� ������ ������ ����� ��� ������������ = > ��������������� �����, ��������� ��������� 
// � �������� ��������.
//�������� �� ��������� ������������� ����� ��������� ������, ����� ��������� ��������, 
// ����� ������������ ������ push(), � ��������� ��������� � ������� �� �������� = > ��� ������������� ������ ������� �����������.
//��� ���������� ����� ���������� ����������� ������ � ������������ ������� = >
//�	������������� ������� ��������� ���������
//�	������ ��� ��������� ������������� �� ����������������
//��������!
//1.	������� ��������� ��� ������������� ������ ������!� ������������� ��������� �� ���� ������������� move - ���������
//2.	������� ������� �� ������ � ������� range - base - for
//��������� ������������� ����� �� ����������� ���� ���������.

//��������� �������� ������ �������� �� ������ ���������, �� � ���������� :
//
MyQueue<MyString> q1{ MyString("AAA"), MyString("qwerty"), MyString("Hi") /*<������_��������������> */};
q1.print();
////������������� MyQueue � ����������� for:
for (const auto& el : q1) { std::cout << el << ' '; } cout << endl << endl;
//
MyString s("abc");
q1.push(s);
q1.push(MyString("123"));
MyString s1 = q1.pop();
q1.print();
q1.push("qqq");//q1.push("qqq");
q1.print();

MyQueue < MyString >  q2 = q1;
q2.print();
MyQueue < MyString >  q22 = std::move(q1);
q1.print(); cout << endl;
q22.print();

MyQueue < MyString >  q3{ 10, MyString("!") }; //������� ������ ��������� 10 ��������� �� ������� �!� 
q3.print();
q1 = q3;
q1.print();
q2 = MyQueue < MyString >(5, MyString(" ? "));
q2.print();
q1 = { MyString("bbb"), MyString("ssss") };
	
	return 0;
}
